% Problem author: Sergey Kopeliovich
% Original source: Харьковские сборы, февраль 2012

\begin{problem}{Самая дальняя}{mostfar.in}{mostfar.out}{2 секунды}{256 мегабайт}{}

Даны $N$ точек на плоскости, нужно уметь обрабатывать следующие запросы:

\begin{itemize}
  \setlength{\parskip}{-0.7em}
  \setlength{\itemsep}{0.7em}
  \item \t{get a b} --- возвращает максимум по всем точкам величины $ax+by$.
  \item \t{add x y} --- добавить точку в множество.
\end{itemize}

\InputFile

Число $N$ ($1 \le N \le 10^5$) и $N$ точек.
Далее число $M$ ($1 \le M \le 10^5$ --- количество запросов и собственно запросы. Формат запросов можно посмотреть в примере.
Все координаты точек и числа \t{a}, \t{b} --- целые числа, по модулю не превосходящие $10^9$.

\OutputFile

На каждый запрос вида \t{get} выведите одно целое число --- максимум величины $ax+by$.

\Example

\begin{example}
\exmp{
3
0 0
1 0
0 1
10
get 1 1
get -1 -1
get 1 -1
get -1 1
add 2 2
add -2 -2
get 1 1
get -1 -1
get 1 -1
get -1 1
}{
1
0
1
1
4
4
1
1
}%
\end{example}

\Note

Автор задачи уже написал некоторый код, который вы можете скачать по адресу (?) и использовать.
Имеется код на языках \t{C++}, \t{Java}.

Написанная часть умеет делать две вещи:

$\circ$ \t{Build(} множество точек на плоскости \t{)}.

$\circ$ \t{GetMax(a, b)}.

Время работы: \t{Build} за $O(N \log N)$, \t{GetMax} за $O(\log N)$.

\end{problem}
